<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
    
        // function test() {

        // }
    
        // test.[[scope]]   // 域，作用域


        function a() {  // a定义
            function b() {
                var b = 234;
            }
            var a = 123;
            b();
        }
        var glob = 100;
        a();  // a执行 

        //a定义 a.[[scope]] --> 0: GO {}
        //a执行 a.[[scope]] --> 0: AO {}
        //                      1: GO {}

        // b创建的作用域链里的AO就是a函数执行时的AO，是同一个对象
        // 函数被执行完，会把自己产生的AO销毁（剪线），再次被执行，生成新的AO
        // a函数执行完，只剩下a定义，a执行的时候，b才会被定义
    </script>
</body>
</html>